home *** CD-ROM | disk | FTP | other *** search
- Joystickabfrage in GFA Basic 2.x
-
- Dieser Bericht ist schon in der Ausgabe 2/89 erschienen, doch es gab ein
- kleines Problem. Der Wert der Joystickadresse wird nicht zurückgesetzt.
- Hier nun nochmal das gleiche Programm mit diesem kleinen Zusatz.
-
- In GFA Basic 2.0 gibt es im Gegensatz zur 3.0 Version keinen Befehl, der
- der den Joystick abfrägt. Jedoch ist es auch nicht schwer im 2.0er dies
- zu meistern.
-
- HIDEM
- aj$=CHR$(&H14)
- bj$=CHR$(&H15)
- cj$=CHR$(&H8)
- joy%=XBIOS(34)+60
- VOID XBIOS(&H19,3,L:VARPTR(aj$))
-
- In aj$ haben wir die Adresse um mit dem zweiten XBIOS Befehl die Maus
- auszuschalten. Die anderen beiden (bj$ und cj$) helfen uns am Schluβ
- eines Programms die Maus wieder aus den 'ewigen Jagdgründen'zu holen.
- Mit XBIOS(34)+60 steuern wir die Joystickregister an.
-
- Mit PEEK (joy%+1) erhalten wir einen Wert, der den 9 Richtungen zuge-
- ordnet ist.
-
- Das sieht dann so aus: Mit gedrückten Feuerknopf so:
-
- 5 1 9 133 129 137
-
- 4 0 8 132 128 136
-
- 6 2 10 134 130 138
-
-
- Wir setzen die Abfrage in eine Schleife und erhalten dann immer den Wert
- der aktuellen Richtung.
-
- z.B. so:
-
- DO
- s=PEEK(joy%+1)
- LOOP
-
- Nun müssen wir am Schluβ des Programms die Maus wieder einschalten. Das
- machen wir mit den beiden Variablen bj$ und cj$ und einen XBIOS Befehl.
-
- VOID XBIOS(&H19,3,L:VARPTR(bj$))
- VOID XBIOS(&H19,3,L:VARPTR(cj$))
-
-
- Wollen Sie den Feuerknopf abfragen, müssen Sie nach jeder erfolgreichen
- Abdfrage die Joystickadresse auf Null setzen. Das machen wir mit
- POKE joy%+1,0 .
-
- z.B.
-
- DO
- s=PEEK(joy%+1)
- IF s=128
- POKE joy%+1,0
- PRINT "Feuer"
- ENDIF
- LOOP
-
- Wer es besonders genau nimmt, sollte die Adresse nach jedem Aufruf auf
- Null setzen.
-
-
- Diese Joystickroutine funktioniert mit jeder TOS Version, soweit wir
- wissen auch auf TOS 1.6 (STE).
-
- Ein kleines Demoprogramm ist im Ordner PROGRAMM.E als JOYSTICK.LST ge-
- speichert. Es kann mit dem Merge Befehl eingeladen werden.
-
- HH
- ə